package com.leyou.gateway.task;

import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

/**
 * 当前类是用来存储定时任务的
 */
@Slf4j
@Component
public class JobDemo {

    private Integer i = 0;

    /**
     * 固定延迟定时任务，
     * 认为是一个差学生，不爱学习，由于疫情拖欠了很多课程，但是开学后，也不补了，从新的开始学习。
     * 固定延迟，侧重于两次定时任务之间的时间延迟。
     */
//    @Scheduled(fixedDelay = 2000)
//    public void delayDemo(){
//        if(i==1){
//            try {
//                Thread.sleep(3000);
//            } catch (InterruptedException e) {
//                e.printStackTrace();
//            }
//        }
//        log.info("定时任务执行了！");
//        i++;
//    }

    /**
     * 固定频率定时任务
     * 这个就像一个学习努力的学生，由于疫情拖欠了很多课程，开学后，这个学生会先把之前拖欠的都补完了，才开始新的内容。
     * 固定频率定时任务侧重于，一段时间内，定时任务执行的次数。
     */
//    @Scheduled(fixedRate = 2000)
//    public void rateDemo(){
//        if(i==1){
//            try {
//                Thread.sleep(3000);
//            } catch (InterruptedException e) {
//                e.printStackTrace();
//            }
//        }
//        log.info("定时任务执行了！");
//        i++;
//    }

    /**
     * 复杂的cron表达式定时任务
     * 从1秒开始，每隔2秒执行一次
     */
//    @Scheduled(cron = "1/2 * * * * ?")
//    public void cronDemo(){
//        if(i==1){
//            try {
//                Thread.sleep(3000);
//            } catch (InterruptedException e) {
//                e.printStackTrace();
//            }
//        }
//        log.info("定时任务执行了！");
//        i++;
//    }


}







